The present invention relates to in general to message oriented middleware (MOM), and more particularly to managing messaging queues in asynchronous messaging system.
In recent years, the ability of application programs to communicate with each other or with system provided services in a computer system or network without having to become involved in the complexities of particular operating systems or communication protocols has been much enhanced by the development of Message Oriented Middleware (MOM). This is a software providing a common programming interface by means of which applications can communicate with other applications without specific knowledge of the different operating systems and/or protocols which may be used by those applications.
One example of Message Oriented Middleware is the IBM WebSphere MQ product family (“IBM” and “WebSphere” are trademarks of International Business Machines Corporation). WebSphere MQ and other MOM products employ message queuing which allows programs to send and receive application specific data or messages to each other. Without having a private, dedicated logical connection established between them. Instead, messages containing the application specific data are placed on messaging queues by a queue manager local to the application. These queues may be accessed directly by applications on the same system using the same queue manager or their contents may be transmitted over a network or multi node system and placed on respective associated queues accessible to a receiving application via its respective local queue manager. In order to transmit messages to remote applications, the originating queue manager must establish a communication channel to the remote queue manager. Both transmission and accessing of queued messages take place asynchronously. Applications communicate with their associated queue managers via a standard application programming interface (API), known as the Message Queuing Interface (MQI) in the case of WebSphere MQ. Specific API commands cause the queue manager to store (PUT) messages on named destination queues, either directly, if local, or by transmitting them to the appropriate queue manager at a node elsewhere in the system and also to retrieve (GET) stored messages from such queues.
Messages placed on a queue may build up if they are not consumed quickly enough, or they may remain on a queue if no application runs to consume them. Both of these cases may be symptomatic of a problem in the message queuing environment. There is a need to address this.